home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume7 / xmail / patch1.05 < prev    next >
Encoding:
Internet Message Format  |  1990-06-01  |  49.4 KB

  1. Path: uunet!seismo!ukma!rex!uflorida!haven!decuac!decwrl!elroy.jpl.nasa.gov!ames!sun-barr!newstop!sun!news
  2. From: news@sun.Eng.Sun.COM (news)
  3. Newsgroups: comp.sources.x
  4. Subject: v07i085: xmail -- Mail front end for X11, Patch1, Part05/06
  5. Message-ID: <136501@sun.Eng.Sun.COM>
  6. Date: 1 Jun 90 03:42:10 GMT
  7. Organization: Sun Microsystems, Inc. - Mtn View, CA
  8. Lines: 1244
  9. Approved: argv@sun.com
  10.  
  11. Submitted-by: parns.nsc.com!michael (Michael C. Wagnitz)
  12. Posting-number: Volume 7, Issue 85
  13. Archive-name: xmail/patch1.05
  14. Patch-To: xmail: Volume 6, Issue 41-46
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then unpack
  18. # it by saving it into a file and typing "sh file".  To overwrite existing
  19. # files, type "sh file -c".  You can also feed this as standard input via
  20. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  21. # will see the following message at the end:
  22. #        "End of archive 5 (of 5)."
  23. # Contents:  Patch.01e
  24. # Wrapped by michael@harley on Tue May 29 10:33:52 1990
  25. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  26. if test -f 'Patch.01e' -a "${1}" != "-c" ; then 
  27.   echo shar: Will not clobber existing file \"'Patch.01e'\"
  28. else
  29. echo shar: Extracting \"'Patch.01e'\" \(47241 characters\)
  30. sed "s/^X//" >'Patch.01e' <<'END_OF_FILE'
  31. X  char    *pgm;
  32. X  {
  33. X   Cardinal    buttonSpace, i = 0;
  34. X-  char        *txt;
  35. X  
  36. X!  HelpNames[i++] = "Cc";        HelpNames[i++] = "copy";
  37. X!  HelpNames[i++] = "delete";    HelpNames[i++] = "Deliver";
  38. X!  HelpNames[i++] = "file";    HelpNames[i++] = "folder";
  39. X!  HelpNames[i++] = "hold";    HelpNames[i++] = "index";
  40. X!  HelpNames[i++] = "Newmail";    HelpNames[i++] = "Print";
  41. X!  HelpNames[i++] = "quit";    HelpNames[i++] = "read";
  42. X!  HelpNames[i++] = "reply";    HelpNames[i++] = "save";
  43. X!  HelpNames[i++] = "Send";    HelpNames[i++] = "status";
  44. X!  HelpNames[i++] = "Subject";    HelpNames[i++] = "text";
  45. X!  HelpNames[i++] = "title";    HelpNames[i++] = "To";
  46. X!  HelpNames[i++] = "Autograph";    HelpNames[i]   = NULL;
  47. X  
  48. X   strcpy(Command, "Start");        /* let parser know we've started */
  49. X!  Recipient[0] = SubjBuf[0] = CcBuf[0] = '\0';
  50. X  
  51. X   INDEXSIZE = 10000;
  52. X   IndexBuf = (char *) XtMalloc(INDEXSIZE);
  53. X  
  54. X!  txt = GetMailrc("prompt");
  55. X!  if (! txt)
  56. X!     strcpy(MailPrompt, "& ");
  57. X!  else {
  58. X!     strcpy(MailPrompt, txt);
  59. X!     XtFree(txt);
  60. X!    }
  61. X  
  62. X   sprintf(tmpName, "/tmp/xmail%d", getpid());
  63. X  /*
  64. X--- 163,191 ----
  65. X  char    *pgm;
  66. X  {
  67. X   Cardinal    buttonSpace, i = 0;
  68. X  
  69. X!  HelpNames[i++] = "Bcc";    HelpNames[i++] = "Cc";
  70. X!  HelpNames[i++] = "copy";    HelpNames[i++] = "delete";
  71. X!  HelpNames[i++] = "Deliver";    HelpNames[i++] = "file";
  72. X!  HelpNames[i++] = "folder";    HelpNames[i++] = "preserve";
  73. X!  HelpNames[i++] = "index";    HelpNames[i++] = "Newmail";
  74. X!  HelpNames[i++] = "Print";    HelpNames[i++] = "quit";
  75. X!  HelpNames[i++] = "read";    HelpNames[i++] = "reply";
  76. X!  HelpNames[i++] = "save";    HelpNames[i++] = "Send";
  77. X!  HelpNames[i++] = "status";    HelpNames[i++] = "Subject";
  78. X!  HelpNames[i++] = "text";    HelpNames[i++] = "title";
  79. X!  HelpNames[i++] = "To";        HelpNames[i++] = "Autograph";
  80. X!  HelpNames[i]   = NULL;
  81. X  
  82. X   strcpy(Command, "Start");        /* let parser know we've started */
  83. X!  Recipient[0] = SubjBuf[0] = CcBuf[0] = BccBuf[0] = '\0';
  84. X  
  85. X   INDEXSIZE = 10000;
  86. X   IndexBuf = (char *) XtMalloc(INDEXSIZE);
  87. X+  strcpy(IndexBuf, "");
  88. X  
  89. X!  if (! (MailPrompt = GetMailrc("prompt")))
  90. X!     MailPrompt = XtNewString("& ");
  91. X  
  92. X   sprintf(tmpName, "/tmp/xmail%d", getpid());
  93. X  /*
  94. X***************
  95. X*** 201,208 ****
  96. X       XMail.textFont = XtNewString("9x15");
  97. X  
  98. X   if (! (TextFontStr = XLoadQueryFont(XtDisplay(toplevel), XMail.textFont))) {
  99. X!     fprintf(stderr, "%s: Can't open text font %s\n", pgm, XMail.textFont);
  100. X!     exit(-1);
  101. X     }
  102. X  
  103. X   if (XMail.helpFont == NULL)
  104. X--- 195,210 ----
  105. X       XMail.textFont = XtNewString("9x15");
  106. X  
  107. X   if (! (TextFontStr = XLoadQueryFont(XtDisplay(toplevel), XMail.textFont))) {
  108. X!     fprintf(stderr, "%s: Could not open text font %s", pgm, XMail.textFont);
  109. X!     if (strcmp(XMail.textFont, "9x15") == 0) {
  110. X!        fprintf(stderr, "\n");
  111. X!        exit(-1);
  112. X!       } else {
  113. X!        XMail.textFont = XtNewString("9x15");
  114. X!        if ((TextFontStr = XLoadQueryFont(XtDisplay(toplevel),XMail.textFont)))
  115. X!           fprintf(stderr, "; using %s\n", XMail.textFont);
  116. X!        else exit(-1);
  117. X!       }
  118. X     }
  119. X  
  120. X   if (XMail.helpFont == NULL)
  121. X***************
  122. X*** 209,216 ****
  123. X       XMail.helpFont = XtNewString("8x13bold");
  124. X  
  125. X   if (! (HelpFontStr = XLoadQueryFont(XtDisplay(toplevel), XMail.helpFont))) {
  126. X!     fprintf(stderr, "%s: Can't open help font %s\n", pgm, XMail.helpFont);
  127. X!     exit(-1);
  128. X     }
  129. X  /*
  130. X  ** Compute all window dimensions based on extents of the specified fonts.
  131. X--- 211,226 ----
  132. X       XMail.helpFont = XtNewString("8x13bold");
  133. X  
  134. X   if (! (HelpFontStr = XLoadQueryFont(XtDisplay(toplevel), XMail.helpFont))) {
  135. X!     fprintf(stderr, "%s: Could not open help font %s", pgm, XMail.helpFont);
  136. X!     if (strcmp(XMail.helpFont, "8x13bold") == 0) {
  137. X!        fprintf(stderr, "\n");
  138. X!        exit(-1);
  139. X!       } else {
  140. X!        XMail.helpFont = XtNewString("8x13bold");
  141. X!        if ((TextFontStr = XLoadQueryFont(XtDisplay(toplevel),XMail.helpFont)))
  142. X!           fprintf(stderr, "; using %s\n", XMail.helpFont);
  143. X!        else exit(-1);
  144. X!       }
  145. X     }
  146. X  /*
  147. X  ** Compute all window dimensions based on extents of the specified fonts.
  148. X***************
  149. X*** 219,236 ****
  150. X  */
  151. X   XMail.commandHSpace    = 10;
  152. X   XMail.commandVSpace    = 10;
  153. X!  XMail.buttonHeight    = TEXTHEIGHT *  1.6;
  154. X!  XMail.buttonWidth    = TEXTWIDTH  *  8.5;
  155. X         buttonSpace      = XMail.buttonWidth + XMail.commandHSpace + 2;
  156. X   XMail.shellWidth       = (8 * buttonSpace) + 24;    /*  8 buttons per row */
  157. X   XMail.fileBoxWidth     = (4 * buttonSpace) + XMail.buttonWidth + 2;
  158. X!  XMail.helpHeight       = HELPHEIGHT * 14;           /* 14 lines long by */
  159. X!  XMail.helpWidth        = HELPWIDTH  * 60;           /* 60 characters wide */
  160. X   XMail.helpX        = (XMail.shellWidth - XMail.helpWidth) / 2;
  161. X   XMail.helpY            = 70;
  162. X!  XMail.indexHeight      = 240;
  163. X!  XMail.textHeight       = 450;
  164. X!  XMail.textMinHeight    = 150;
  165. X   XMail.commandMinHeight = (XMail.buttonHeight*2) + (XMail.commandVSpace*3) + 4;
  166. X   XMail.menuX            = 15;
  167. X   XMail.menuY            = 7;
  168. X--- 229,246 ----
  169. X  */
  170. X   XMail.commandHSpace    = 10;
  171. X   XMail.commandVSpace    = 10;
  172. X!  XMail.buttonHeight    = TEXTHEIGHT + (TextFontStr->ascent / 2);
  173. X!  XMail.buttonWidth    = XTextWidth(TextFontStr, " Newmail ", 9);
  174. X         buttonSpace      = XMail.buttonWidth + XMail.commandHSpace + 2;
  175. X   XMail.shellWidth       = (8 * buttonSpace) + 24;    /*  8 buttons per row */
  176. X   XMail.fileBoxWidth     = (4 * buttonSpace) + XMail.buttonWidth + 2;
  177. X!  XMail.helpHeight       = HELPHEIGHT * 14;           /* 14 lines by 60 chars */
  178. X!  XMail.helpWidth        = XTextWidth(HelpFontStr, "X11Windows", 10) * 6;
  179. X   XMail.helpX        = (XMail.shellWidth - XMail.helpWidth) / 2;
  180. X   XMail.helpY            = 70;
  181. X!  XMail.indexHeight      = XMail.buttonHeight * 12;
  182. X!  XMail.textHeight       = XMail.buttonHeight * 23;
  183. X!  XMail.textMinHeight    = XMail.textHeight / 3;
  184. X   XMail.commandMinHeight = (XMail.buttonHeight*2) + (XMail.commandVSpace*3) + 4;
  185. X   XMail.menuX            = 15;
  186. X   XMail.menuY            = 7;
  187. X***************
  188. X*** 245,257 ****
  189. X  */
  190. X  SetHints()
  191. X  {
  192. X-  Arg        args[MAXARGS];
  193. X-  Cardinal    n;
  194. X   Display    *dpy;
  195. X   XSizeHints    size_hints;
  196. X!  XWMHints    wm_hints, *hints;
  197. X!  int        scn, depth;
  198. X!  CommandWidget  nm = (CommandWidget)WidgetOf(WidgetOf(WidgetOf(toplevel, "vpane"), "commandPanel"), "Newmail");
  199. X  
  200. X  
  201. X   dpy = XtDisplay(toplevel);
  202. X--- 255,265 ----
  203. X  */
  204. X  SetHints()
  205. X  {
  206. X   Display    *dpy;
  207. X   XSizeHints    size_hints;
  208. X!  XWMHints    wm_hints;
  209. X!  int        scn, depth, x, y, width, height;
  210. X!  CommandWidget  nm = (CommandWidget)WidgetOf(WidgetOf(WidgetOf(toplevel, "topBox"), "commandPanel"), "Newmail");
  211. X  
  212. X  
  213. X   dpy = XtDisplay(toplevel);
  214. X***************
  215. X*** 265,294 ****
  216. X                  cross_weave_bits, cross_weave_width, cross_weave_height,
  217. X                  nm->label.foreground,
  218. X                  nm->core.background_pixel, depth);
  219. X- 
  220. X-  size_hints.flags = PSize | PMinSize;
  221. X-  size_hints.width = XMail.shellWidth;
  222. X-  size_hints.min_width = size_hints.max_width = size_hints.width;
  223. X-  size_hints.height = XMail.indexHeight + XMail.textHeight +
  224. X-                      XMail.commandMinHeight +  (2 * XMail.buttonHeight) + 6;
  225. X-  size_hints.min_height = size_hints.max_height = size_hints.height;
  226. X- 
  227. X-  XSetNormalHints(XtDisplay(toplevel), XtWindow(toplevel), &size_hints);
  228. X  /*
  229. X  ** Notify the window manager about our icon window
  230. X- ** Use XGetWMHints to retain icon initial_state and position
  231. X  */
  232. X-  hints = XGetWMHints(XtDisplay(toplevel),
  233. X-                      XtWindow(XtNameToWidget(toplevel, "icon")));
  234. X- 
  235. X   wm_hints.input = True;
  236. X-  wm_hints.initial_state = hints->initial_state;    /* take care of iconic state */
  237. X-  wm_hints.icon_x = hints->icon_x;        /* restore icon position */
  238. X-  wm_hints.icon_y = hints->icon_y;
  239. X-  wm_hints.flags  = InputHint | StateHint;
  240. X  
  241. X!  XFree(hints);
  242. X  
  243. X  #ifndef PIXMAP_ICON
  244. X   wm_hints.flags |= IconWindowHint;
  245. X   wm_hints.icon_window = XtWindow(XtNameToWidget(toplevel, "icon"));
  246. X--- 273,295 ----
  247. X                  cross_weave_bits, cross_weave_width, cross_weave_height,
  248. X                  nm->label.foreground,
  249. X                  nm->core.background_pixel, depth);
  250. X  /*
  251. X  ** Notify the window manager about our icon window
  252. X  */
  253. X   wm_hints.input = True;
  254. X  
  255. X!  wm_hints.initial_state = (XMail.iconic) ? IconicState : NormalState;
  256. X  
  257. X+  x = RootWidth - 58;            /* provide some reasonable defaults */
  258. X+  y = 83;                /* slightly down the right side top */
  259. X+  if (XMail.iconGeometry)
  260. X+     XParseGeometry(XMail.iconGeometry, &x, &y, &width, &height);
  261. X+ 
  262. X+  wm_hints.icon_x = x;
  263. X+  wm_hints.icon_y = y;
  264. X+ 
  265. X+  wm_hints.flags  = InputHint | StateHint | IconPositionHint;
  266. X+ 
  267. X  #ifndef PIXMAP_ICON
  268. X   wm_hints.flags |= IconWindowHint;
  269. X   wm_hints.icon_window = XtWindow(XtNameToWidget(toplevel, "icon"));
  270. X***************
  271. X*** 299,305 ****
  272. X--- 300,322 ----
  273. X  #endif
  274. X  
  275. X   XSetWMHints(dpy, XtWindow(toplevel), &wm_hints);
  276. X+ /*
  277. X+ ** Set starting position and default geometry
  278. X+ */
  279. X+  if (! XGetNormalHints(XtDisplay(toplevel), XtWindow(toplevel), &size_hints)) {
  280. X+     size_hints.x = 56;
  281. X+     size_hints.y = 56;            /* slightly off from top left corner */
  282. X+    }
  283. X  
  284. X+  size_hints.width = XMail.shellWidth;
  285. X+  size_hints.height = XMail.indexHeight + XMail.textHeight +
  286. X+                      XMail.commandMinHeight +  (2 * XMail.buttonHeight) + 6;
  287. X+  size_hints.min_width = size_hints.max_width = size_hints.width;
  288. X+  size_hints.min_height = size_hints.max_height = size_hints.height;
  289. X+ 
  290. X+  size_hints.flags = USPosition | USSize | PMinSize;
  291. X+ 
  292. X+  XSetNormalHints(XtDisplay(toplevel), XtWindow(toplevel), &size_hints);
  293. X  } /* SetHints */
  294. X  
  295. X  
  296. X***************
  297. X*** 310,318 ****
  298. X  int    argc;
  299. X  char    **argv;
  300. X  {
  301. X-  Arg args[2];
  302. X- 
  303. X- 
  304. X   toplevel = XtInitialize(*argv, "XMail", Opts, XtNumber(Opts), &argc, argv);
  305. X  
  306. X   XtGetApplicationResources(toplevel, &XMail, resrcs, XtNumber(resrcs), NULL, 0);
  307. X--- 327,332 ----
  308. X***************
  309. X*** 329,337 ****
  310. X  
  311. X   CreateSubWindows(toplevel);
  312. X  
  313. X!  XtSetArg(args[0], XtNinput, (XtArgVal) True);
  314. X!  XtSetArg(args[1], XtNiconWindow, XtWindow(XtNameToWidget(toplevel, "icon")));
  315. X!  XtSetValues(toplevel, args, TWO);
  316. X  
  317. X   XtRealizeWidget(toplevel);
  318. X  
  319. X--- 343,349 ----
  320. X  
  321. X   CreateSubWindows(toplevel);
  322. X  
  323. X!  XSync(XtDisplay(toplevel), False);
  324. X  
  325. X   XtRealizeWidget(toplevel);
  326. X  
  327. X*** ../v1.0/xmail.man    Tue May 29 09:58:54 1990
  328. X--- xmail.man    Tue May 29 10:09:09 1990
  329. X***************
  330. X*** 1,5 ****
  331. X  .\"
  332. X! .\" @(#)xmail.l 1.0 90/02/20 NSC;
  333. X  .\"
  334. X  .\" Copyright 1990 by National Semiconductor Corporation.
  335. X  .\"
  336. X--- 1,5 ----
  337. X  .\"
  338. X! .\" @(#)xmail.l 1.1 90/05/29 NSC;
  339. X  .\"
  340. X  .\" Copyright 1990 by National Semiconductor Corporation.
  341. X  .\"
  342. X***************
  343. X*** 24,45 ****
  344. X  .\" Author:  Michael C. Wagnitz - National Semiconductor Corporation
  345. X  .\"
  346. X  .ds nS National Semiconductor Corporation
  347. X! .ds xM \fBxmail\fP
  348. X  .\"
  349. X! .TH XMAIL 1 "March 20, 1990" "NSC"
  350. X  .SH NAME
  351. X  xmail \- X11 visual interface to the mail program
  352. X  .SH SYNOPSIS
  353. X! .B xmail
  354. X  .RB "[\|" \-\fItoolkitoptions\fP "\|]"
  355. X  .RB "[\|" \-\fIxmailoptions\fP "\|]"
  356. X  .SH DESCRIPTION
  357. X! \*(xM
  358. X! is the X11 visual interface to the
  359. X! .B mail
  360. X  program.  It offers functionality similar to the SunView mailtool, but with
  361. X! some enhancements.
  362. X  
  363. X  The \*(xM shell appearance is similar in layout to mailtool.
  364. X  A title bar decorates the top of the shell, and carries the name and
  365. X  version of the program, as well as information about the current mail folder
  366. X--- 24,114 ----
  367. X  .\" Author:  Michael C. Wagnitz - National Semiconductor Corporation
  368. X  .\"
  369. X  .ds nS National Semiconductor Corporation
  370. X! .ds xM xmail
  371. X! .if n .ds Q \&"
  372. X! .if n .ds U \&"
  373. X! .if t .ds Q ``
  374. X! .if t .ds U ''
  375. X  .\"
  376. X! .TH XMAIL 1 "May 29, 1990" "NSC"
  377. X  .SH NAME
  378. X  xmail \- X11 visual interface to the mail program
  379. X  .SH SYNOPSIS
  380. X! .B \*(xM
  381. X  .RB "[\|" \-\fItoolkitoptions\fP "\|]"
  382. X  .RB "[\|" \-\fIxmailoptions\fP "\|]"
  383. X  .SH DESCRIPTION
  384. X! .B \*(xM
  385. X! is an X11 window based visual interface to the
  386. X! .B Mail
  387. X  program.  It offers functionality similar to the SunView mailtool, but with
  388. X! some enhancements. 
  389. X  
  390. X+ Users may use mouse button actions in the index window to select a message for
  391. X+ further processing (by pressing left mouse button), and automatically read the
  392. X+ selected message (by pressing the right mouse button).
  393. X+ 
  394. X+ Folder specification is aided by a selection menu which can walk down through
  395. X+ the user's folder directory hierarchy. 
  396. X+ 
  397. X+ Message composition and modification is provided by the user's preferred
  398. X+ visual editor (vi by default).  Editor preference can be specified using the
  399. X+ process or Mail environment variable VISUAL.
  400. X+ 
  401. X+ Help is available for any window or command button by pressing the middle
  402. X+ mouse button on the window or command button while holding down the Shift key.
  403. X+ .SH OPTIONS
  404. X+ A non-existent or illegal command line option specification will cause
  405. X+ display of the usage statement and \*(xM termination.
  406. X+ .TP
  407. X+ \fB\-toolkitoptions\fR
  408. X+ All standard X11 toolkit options are accepted on the command line.
  409. X+ .TP
  410. X+ \fB\-xmailoptions\fR
  411. X+ \*(xM also accepts the following additional options:
  412. X+ .RS
  413. X+ .TP
  414. X+ \fB-iconGeometry \fI+XOff+YOff\fR
  415. X+ provides a command line option for specifying the preferred geometry
  416. X+ location for the \*(xM icon window.  This overrides any \*(xM resource
  417. X+ specification for \*Q\fB*iconGeometry: \fI+XOff+YOff\fR\*U.
  418. X+ .TP
  419. X+ \fB\-nb\fR
  420. X+ tells \*(xM to \fBnot\fR ring the terminal bell when issuing status and
  421. X+ error messages.  This is equivalent to the \*(xM resource specification
  422. X+ \*Q\fB*bellRing: \fIFalse\fR\*U.
  423. X+ .TP
  424. X+ \fB\-helpfont \fIfontname\fR
  425. X+ specifies the font to use when displaying help text.  This option overrides
  426. X+ the \*(xM resource specification \*Q\fB*helpFont: \fIfontname\fR\*U.
  427. X+ .TP
  428. X+ \fB\-n\fR
  429. X+ tells Mail to \fBnot\fR initialize from the system default Mail.rc file.
  430. X+ This option is actually a Mail program option, which is passed on to it during
  431. X+ startup from \*(xM.
  432. X+ The option can also be specified as an \*(xM resource
  433. X+ using the specification \*Q\fB*mailopt_n: \fITrue\fR\*U.
  434. X+ .TP
  435. X+ \fB\-U\fR
  436. X+ tells Mail to convert internet style addresses into uucp format.
  437. X+ This option also is a Mail option, passed on to it during startup.
  438. X+ The option can also be specified as an \*(xM resource
  439. X+ using the specification \*Q\fB*mailopt_U: \fITrue\fR\*U.
  440. X+ .TP
  441. X+ \fB\-f\ \fI+foldername\fR
  442. X+ tells Mail to start by processing the specified folder.
  443. X+ This is also a Mail program option, passed to it during startup.
  444. X+ The option can also be specified as an \*(xM resource
  445. X+ using the specification \*Q\fB*MFileName: \fI+foldername\fR\*U.
  446. X+ .TP
  447. X+ \fB\-ls\fR
  448. X+ tells \*(xM to \fBnot\fR show the last message of a folder by default.  This
  449. X+ option is equivalent to setting the \*(xM resource \fB*Show_Last\fR to
  450. X+ \fIFalse\fR.  If disabled, \*(xM (actually Mail) will display the default
  451. X+ (usually first) message of a folder when switching to or re-reading a folder.
  452. X+ By default, \*(xM attempts to read the latest (or last) message of a folder.
  453. X+ .RE
  454. X+ .SH USAGE
  455. X  The \*(xM shell appearance is similar in layout to mailtool.
  456. X  A title bar decorates the top of the shell, and carries the name and
  457. X  version of the program, as well as information about the current mail folder
  458. X***************
  459. X*** 50,57 ****
  460. X  is indicated by highlight of the number of a particular message.
  461. X  New and unread mail are prefixed with 'N' and 'U' characters.  Deleted
  462. X  messages not yet removed from the index list have the letter 'D' preceding
  463. X! the message number.  Messages marked for saving (via the save button) will
  464. X! display an asterisk (*) in front of their index number.
  465. X  
  466. X  Below the index
  467. X  window, a status window displays status and error messages.  The terminal
  468. X--- 119,125 ----
  469. X  is indicated by highlight of the number of a particular message.
  470. X  New and unread mail are prefixed with 'N' and 'U' characters.  Deleted
  471. X  messages not yet removed from the index list have the letter 'D' preceding
  472. X! the message number.
  473. X  
  474. X  Below the index
  475. X  window, a status window displays status and error messages.  The terminal
  476. X***************
  477. X*** 59,68 ****
  478. X  disabled from the command line or user resource file.
  479. X  
  480. X  The center portion of the
  481. X! shell displays a panel with a selection of commonly used mail commands.
  482. X! Pressing and then releasing (\fIalso known as '\fBclicking\fP')\fR
  483. X  the \fBleft\fR mouse button while the cursor is within a
  484. X! particular command button box invokes that mail command.
  485. X  
  486. X  Each button in the command panel also offers an expanded menu of choices.
  487. X  Pressing the \fBright\fR mouse button presents the user with the
  488. X--- 127,136 ----
  489. X  disabled from the command line or user resource file.
  490. X  
  491. X  The center portion of the
  492. X! shell displays a panel with a selection of commonly used Mail commands.
  493. X! Pressing and then releasing (\fIalso known as \*Q\fBclicking\fP\*U)\fR
  494. X  the \fBleft\fR mouse button while the cursor is within a
  495. X! particular command button box invokes that Mail command.
  496. X  
  497. X  Each button in the command panel also offers an expanded menu of choices.
  498. X  Pressing the \fBright\fR mouse button presents the user with the
  499. X***************
  500. X*** 84,90 ****
  501. X  Message text is displayed in the bottom window of the \*(xM shell.
  502. X  Like the index window above, scroll bars provide easy access to any portion of
  503. X  the text.  Because the reading of a very large message can take more than a few
  504. X! moments, \*(xM decides when starting mail or changing folders that a
  505. X  message longer
  506. X  than 65,000 characters will \fBnot\fR be automatically displayed.
  507. X  
  508. X--- 152,158 ----
  509. X  Message text is displayed in the bottom window of the \*(xM shell.
  510. X  Like the index window above, scroll bars provide easy access to any portion of
  511. X  the text.  Because the reading of a very large message can take more than a few
  512. X! moments, \*(xM decides when starting Mail or changing folders that a
  513. X  message longer
  514. X  than 65,000 characters will \fBnot\fR be automatically displayed.
  515. X  
  516. X***************
  517. X*** 104,171 ****
  518. X  During command execution, the cursor is changed to a watch face
  519. X  to indicate that \*(xM is busy.  Upon completion of the activity, the
  520. X  cursor is restored to its previous value.
  521. X! .SH OPTIONS
  522. X! A non-existent or illegal option command line specification will cause
  523. X! display of the usage statement and \*(xM termination.
  524. X! .TP
  525. X! \fB\-toolkitoptions\fR
  526. X! All standard X11 toolkit options are accepted on the command line.
  527. X! .TP
  528. X! \fB\-xmailoptions\fR
  529. X! \*(xM also accepts the following additional options:
  530. X! .RS
  531. X! .TP
  532. X! \fB\-nb\fR
  533. X! tells \*(xM to \fBnot\fR ring the terminal bell when issuing status messages.
  534. X! .TP
  535. X! \fB\-helpfont \fIfontname\fR
  536. X! tells \*(xM to use the following font specification when displaying help text.
  537. X! .TP
  538. X! \fB\-n\fR
  539. X! tells mail to \fBnot\fR initialize from the system default Mail.rc file.
  540. X! .TP
  541. X! \fB\-U\fR
  542. X! tells mail to convert internet style addresses into uucp format.
  543. X! .TP
  544. X! \fB\-f\ \fI+foldername\fR
  545. X! tells mail to start by processing the specified folder.
  546. X! .TP
  547. X! \fB\-s\ \fIsubject\fR
  548. X! tells \*(xM to set the subject string (for the next send request) to
  549. X! the indicated subject.  Setting the subject string here does not automatically
  550. X! invoke the send mechanism.  That must still be invoked via the \fIsend\fR
  551. X! command button.
  552. X! .TP
  553. X! \fB\-ls\fR
  554. X! tells \*(xM to \fBnot\fR show the last message of a folder by default.  This
  555. X! option is equivalent to setting the \*(xM resource \fIShow_Last\fR to False.
  556. X! .RE
  557. X  .SH "SENDING MESSAGES"
  558. X! All Send and reply operations invoke the user's preferred editor (as
  559. X! defined by the user's \fBEDITOR\fR environment variable) to create or modify
  560. X  the message prior to delivery.  An appropriate xterm window will be created
  561. X  to contain the edit session.  The \fIdefault\fR editor will be \fBvi\fR, if no
  562. X! EDITOR or VISUAL (mail) environment variable definition exists.
  563. X  
  564. X  Upon completion of the send/reply editing session, a smaller window will be
  565. X! displayed which contains \fITo:\fR, \fISubject:\fR, and \fICc:\fR fields for
  566. X! the current message composition.  Help is available for each of these popup
  567. X! shell window fields, by pressing the middle mouse button while holding down
  568. X! either Shift key.  A menu of user defined mail aliases is available from
  569. X! either the To: or Cc: windows.  Pressing the right mouse btton while the
  570. X! cursor is in either of these input fields will display the alias names
  571. X! menu.  If the user has no mail aliases defined, the terminal bell will be rung
  572. X! to indicate that no alias names menu is forthcoming.
  573. X  
  574. X! Like the \fIFile:\fR window which is used to enter file and folder names, the
  575. X  content of the send window popup fields may be modified by the user as needed.  
  576. X! The backspace and delete keys remove the previous character, the control_W
  577. X! combination deletes
  578. X! the previous word, and the control_U combination deletes the entire
  579. X! line of information.  Pressing the Return key in any of these three
  580. X  fields causes the cursor to automatically warp to the next field.
  581. X  
  582. X! Users may append their \fISign\fP or \fIsign\fP autograph (see \fBmail(1)\fR)
  583. X  once only to the end of the message text.
  584. X  Pressing the \fIDeliver\fR button causes the message
  585. X  to be delivered, while the right mouse button displays a menu for the Deliver,
  586. X--- 172,254 ----
  587. X  During command execution, the cursor is changed to a watch face
  588. X  to indicate that \*(xM is busy.  Upon completion of the activity, the
  589. X  cursor is restored to its previous value.
  590. X! .SH ICONIFICATION
  591. X! \*(xM establishes access to a dummy mail folder whenever the application is
  592. X! iconified.
  593. X! This is done to prevent potential corruption of a real mail folder, should the
  594. X! user choose to read their mail from another process while \*(xM is running.
  595. X! Because of this action, iconifying \*(xM \fBalways\fI COMMITS\fR any changes
  596. X! made to the current folder, prior to switching to the dummy folder.
  597. X! 
  598. X! The original folder being read by the user will be 
  599. X! automatically reinstated as current whenever \*(xM is again de-iconified.
  600. X! This action will flush any deleted messages from the index headers and renumber
  601. X! the remaining messages in the folder.  The last message in the folder will then
  602. X! become the current message displayed (unless \*(xM was started with the
  603. X! \fB*Show_Last\fR resource option disabled, in which case the first message
  604. X! would be made current).
  605. X! 
  606. X! If the \*Qcurrent\*U folder was the user's system folder, any new mail
  607. X! received since the iconification would be automatically included by the
  608. X! re-access.  If some other folder were current (\fIor no folder, due to initial
  609. X! conditions of no mail for the user\fR), de-iconification would not cause the
  610. X! reading of any new mail.  Under those circumstances the user must press the
  611. X! \fBNewmail\fR command button to read the new mail (and change to the system
  612. X! mail folder).
  613. X! 
  614. X! Iconification is typically promoted by user definable button events which are
  615. X! particular to the window manager in use at the time.  The \*(nS logo
  616. X! displayed at the left of the title bar will also make a window manager
  617. X! request to iconify, under X11 Release 4.  (\fIUnder Release 3, it will simply
  618. X! ring the terminal bell, as R3 did not support client iconification requests.\fR)
  619. X  .SH "SENDING MESSAGES"
  620. X! All send and reply operations invoke the user's preferred editor (\fIas
  621. X! defined by the user's \fBVISUAL\fP environment variable\fR) to create or modify
  622. X  the message prior to delivery.  An appropriate xterm window will be created
  623. X  to contain the edit session.  The \fIdefault\fR editor will be \fBvi\fR, if no
  624. X! VISUAL (\fImailrc or process\fR) environment variable definition exists.
  625. X!   
  626. X! Resources for this edit window must be specified in the user's
  627. X! \*Q\fB/.Xdefaults\fR\*U file, as opposed to the \*(xM application default file,
  628. X! because the editor invocation is actually an \fBxterm\fR window, not a widget
  629. X! of \*(xM.
  630. X! User's may specify resources for this xterm message composition window using
  631. X! the \*(xM Class identifier followed by the xterm terminal resources identifier
  632. X! \*Qvt100\*U, as in \*Q\fBXMail*vt100.\fI<resource: value>\fR\*U.
  633. X! For example, the author uses the following resource definitions in a
  634. X! \&~/.Xdefaults file to control message composition windows.
  635. X! .sp
  636. X! .RS
  637. X! .nf
  638. X! XMail*vt100.geometry:           80x27+30+100
  639. X! XMail*vt100.font:               fg-22
  640. X! XMail*vt100.foreground:         white
  641. X! XMail*vt100.background:         blue
  642. X! XMail*vt100.mouse:              white
  643. X! .fi
  644. X! .RE
  645. X  
  646. X  Upon completion of the send/reply editing session, a smaller window will be
  647. X! displayed containing \fITo:\fR, \fISubject:\fR, \fICc:\fR, and \fIBcc:\fR
  648. X! fields for
  649. X! the current message composition.  Help is available for each of these 
  650. X! fields by pressing the middle mouse button while holding down either keyboard
  651. X! Shift key.
  652. X  
  653. X! A menu of user defined mail aliases is available for any of the
  654. X! To:, Cc:, or Bcc: windows.  Pressing the right mouse button while the
  655. X! cursor is in any of these input fields causes the alias names menu to be
  656. X! displayed.  If the user has not defined any mail aliases, the terminal bell
  657. X! will be rung instead, to indicate that no alias names menu is available.
  658. X! 
  659. X! Like the \fIFile:\fR window used to enter file and mail folder names, the
  660. X  content of the send window popup fields may be modified by the user as needed.  
  661. X! Backspace and delete keys remove the previous character, control_W
  662. X! deletes the previous word, and control_U deletes the entire
  663. X! line of information.  Pressing the Return key in any of these four
  664. X  fields causes the cursor to automatically warp to the next field.
  665. X  
  666. X! Users may append their \fISign\fP or \fIsign\fP autograph (see \fBMail(1)\fR)
  667. X  once only to the end of the message text.
  668. X  Pressing the \fIDeliver\fR button causes the message
  669. X  to be delivered, while the right mouse button displays a menu for the Deliver,
  670. X***************
  671. X*** 172,185 ****
  672. X  \fICancel\fR (and delete), and Cancel (and save in your dead.letter file)
  673. X  commands.
  674. X  
  675. X! Mail forwarded to another user will be bracketed by a '\fIBegin Forwarded
  676. X! Message/End Forwarded Message\fR' string
  677. X! pair when using the '\fIforward message\fR' Send command menu option.  Also 
  678. X! included will be a '\fIForwarded: Mail from ...\fR' line in the mail header.
  679. X  
  680. X! Reply messages will include a '\fIIn-Reply-To: Mail from ...\fR' string in the
  681. X! mail
  682. X! header.  Like the '\fIForwarded:\fR' header described above, it will include
  683. X  the name of the original sender, as well as the date the original message was
  684. X  received.
  685. X  .SH FOLDERS
  686. X--- 255,268 ----
  687. X  \fICancel\fR (and delete), and Cancel (and save in your dead.letter file)
  688. X  commands.
  689. X  
  690. X! Mail forwarded to another user will be bracketed by a \*Q\fIBegin Forwarded
  691. X! Message/End Forwarded Message\fR\*U string
  692. X! pair when using the \*Q\fIforward message\fR\*U Send command menu option.  Also 
  693. X! included will be a \*Q\fIForwarded: Mail from ...\fR\*U line in the mail header.
  694. X  
  695. X! Reply messages will include a \*Q\fIIn-Reply-To: Mail from ...\fR\*U string
  696. X! in the mail
  697. X! header.  Like the \*Q\fIForwarded:\fR\*U header described above, it will include
  698. X  the name of the original sender, as well as the date the original message was
  699. X  received.
  700. X  .SH FOLDERS
  701. X***************
  702. X*** 207,213 ****
  703. X  disappear, without making a selection.  Re-clicking the left mouse button on
  704. X  the directory folder redisplays the nested menu.
  705. X  
  706. X! The first request for the folder menu extracts (from mail or the system) the
  707. X  necessary information to create the menu.  Subsequent requests simply redisplay
  708. X  that menu.  To force \*(xM to recalculate the folder menu content, press
  709. X  the \fBNewmail\fR button, which causes \*(xM to destroy the current folder
  710. X--- 290,296 ----
  711. X  disappear, without making a selection.  Re-clicking the left mouse button on
  712. X  the directory folder redisplays the nested menu.
  713. X  
  714. X! The first request for the folder menu extracts (from Mail or the system) the
  715. X  necessary information to create the menu.  Subsequent requests simply redisplay
  716. X  that menu.  To force \*(xM to recalculate the folder menu content, press
  717. X  the \fBNewmail\fR button, which causes \*(xM to destroy the current folder
  718. X***************
  719. X*** 214,336 ****
  720. X  menu and re-display your system mail folder.
  721. X  This provides access to folders created after the start of \*(xM.
  722. X  .SH FONTS
  723. X! \*(xM supports a variety of fixed width fonts, adjusting its window dimensions
  724. X! accordingly.  The user is free to enlarge the window, but may not shrink it
  725. X! beyond a minimum usable display.  The default font for text is specified as
  726. X! 9x15, and the default font for help information is 8x13bold.  Text font can
  727. X! be specified on the command line using the standard toolkit font options -fn
  728. X! or -font.  The helpfont can be specified on the command line using the -helpfont
  729. X! option.  The fixed width font 'fixed' also works well within the \*(xM program.
  730. X! Some alternative font selections, particularly those with variable widths, may
  731. X! promote shell sizes that make \*(xM effectively unusable, and should be avoided.
  732. X  .SH RESOURCES
  733. X! \*(xM allows resource definitions for each of its component windows and
  734. X! command buttons.  Color may be added (on a color display device) to enhance
  735. X! the visual display.
  736. X  
  737. X! The following resources names are recognized:
  738. X  .RS
  739. X! .TP
  740. X! \fB*bellRing\fR
  741. X  Normally true, this boolean enables ringing of the terminal bell during
  742. X  status and error message display.
  743. X! .TP
  744. X! \fB*helpFont\fR
  745. X  denotes a preferred font to use when displaying help information.
  746. X! .TP
  747. X! \fB*mailopt_n\fR
  748. X  duplicates the effect of the \fI-n\fR command line option.
  749. X! .TP
  750. X! \fB*mailopt_U\fR
  751. X  duplicates the effect of the \fI-U\fR command line option.
  752. X! .TP
  753. X! \fB*MFileName\fR
  754. X  duplicates the effect of the \fI-f folder\fR command line option.
  755. X! .TP
  756. X! \fB*SubjectStr\fR
  757. X! duplicates the effect of the \fI-s subject\fR command line option.
  758. X! .TP
  759. X! \fB*Show_Last\fR
  760. X  Normally true, this boolean enables display of the last message in a folder,
  761. X  providing no other is newer or unread.  Setting this resource to false causes
  762. X  folder displays to start with the first (or new or unread) message.
  763. X! .TP
  764. X  \fB*icon\fR
  765. X  controls resources for the \fIicon\fR window.  In addition to 
  766. X  specifications of foreground and background colors, it is possible
  767. X  to also specify mailWatch widget resources, such as the following:
  768. X  .RS
  769. X! .TP
  770. X! \fB*icon*reverseVideo\fR
  771. X  If set to true, reverses the foreground and background colors for the icon.
  772. X! .TP
  773. X! \fB*icon*update\fR
  774. X! Specifies the update interval for checking new mail (default is 30 seconds)
  775. X! .TP
  776. X! \fB*icon*bell\fR
  777. X  If set to False, prevents the mailWatch widget from ringing the bell when
  778. X! new mail arrives
  779. X  .RE
  780. X! .TP
  781. X  \fB*titleBar\fR
  782. X  controls resources for the \fItitleBar\fR window
  783. X! .TP
  784. X  \fB*indexWindow\fR
  785. X  controls resources for the \fIindex\fR window
  786. X! .TP
  787. X  \fB*statusWindow\fR
  788. X  controls resources for the \fIstatus\fR window
  789. X! .TP
  790. X  \fB*commandPanel\fR
  791. X  controls resources for the \fIcommand panel\fR
  792. X! .TP
  793. X  \fB*fileWindow\fR
  794. X  controls resources for the \fIfile window\fR within the command panel
  795. X! .TP
  796. X  \fB*textWindow\fR
  797. X  controls resources for the \fItext\fR window
  798. X! .TP
  799. X  \fB*list\fR
  800. X  controls resources for the \fIfolder list\fR popup window
  801. X! .TP
  802. X! \fB*save\fR
  803. X! controls resources for the \fIsave\fR command button
  804. X! .TP
  805. X! \fB*Folder\fR
  806. X! controls resources for the \fIFolder\fR command button
  807. X! .TP
  808. X! \fB*copy\fR
  809. X! controls resources for the \fIcopy\fR command button
  810. X! .TP
  811. X! \fB*quit\fR
  812. X! controls resources for the \fIquit\fR command button
  813. X! .TP
  814. X  \fB*menu\fR
  815. X  controls resources for all of the command button popup menus
  816. X! .TP
  817. X  \fB*To\fR
  818. X  controls resources for the \fITo:\fR entry window
  819. X! .TP
  820. X  \fB*Subject\fR
  821. X  controls resources for the \fISubject:\fR entry window
  822. X! .TP
  823. X  \fB*Cc\fR
  824. X  controls resources for the \fICc:\fR entry window
  825. X! .TP
  826. X! \fB*Autograph\fR
  827. X! controls resources for the \fIAutograph\fR command button
  828. X! .TP
  829. X! \fB*Deliver\fR
  830. X! controls resources for the \fIDeliver\fR command button
  831. X! .TP
  832. X! \fB*Cancel\fR
  833. X! controls resources for the \fICancel\fR command button
  834. X  .RE
  835. X  
  836. X! A set of default resource definitions is provided in the
  837. X! file \fB/usr/lib/X11/app-defaults/XMail\fR.  The user may wish to include the
  838. X! appropriate resource definitions in their ~/.Xdefaults file, to tailor their
  839. X! preference for colors and/or fonts.
  840. X  .SH AUTHOR
  841. X  .ce 3
  842. X  Copyright 1989 - \*(nS
  843. X--- 297,578 ----
  844. X  menu and re-display your system mail folder.
  845. X  This provides access to folders created after the start of \*(xM.
  846. X  .SH FONTS
  847. X! \*(xM now supports a wider variety of font styles, such as \fICourier\fR and 
  848. X! \fInew century schoolbook\fR.
  849. X! Previous restrictions to a small set of fixed width fonts have been eliminated.
  850. X! Certain font styles (\fIsuch as Helvetica\fR) still produce unusable
  851. X! results, as \*(xM
  852. X! attempts to use the font metrics to determine the initial window dimensions
  853. X! fail, producing a window with more width than needed or desired.
  854. X  .SH RESOURCES
  855. X! \*(xM recognizes resource definitions for each of its component windows and
  856. X! command buttons.  Wherever possible, button resources have been named for the
  857. X! label (or first word in the label) of the command button.  (\fIThe exception
  858. X! is the preserve \*Qset\*U menu, whose resources are identified by the second
  859. X! word in each label.\fR)
  860. X! Thus :
  861. X! .RS
  862. X! .TP 3
  863. X! \fB*read\fR
  864. X! specifies resources for the \fIread\fR command button
  865. X! .TP 3
  866. X! \fB*save\fR
  867. X! specifies resources for the \fIsave\fR command button
  868. X! .TP 3
  869. X! \fB*autoprint\fR
  870. X! specifies resources for the \fIset autoprint\fR command button, and
  871. X! .TP 3
  872. X! \fB*noautoprint\fR
  873. X! specifies resources for the \fIset noautoprint\fR command button.
  874. X! .RE
  875. X! .LP
  876. X! Color may be added (on a color display device) to enhance
  877. X! the appearance of \*(xM.  Resources in the application defaults file may be
  878. X! overridden by designations in the user's \&./Xdefaults file, or (\fIin some
  879. X! cases\fR) by command line options.
  880. X! Resources specified in the user's \&./Xdefaults file should be preceded with
  881. X! either the \fB\*(xM\fR application or \fBXMail\fR Class resource identifier.
  882. X  
  883. X! In addition to those resources named for a particular \*(xM command button,
  884. X! the following additional resource names are recognized:
  885. X  .RS
  886. X! .TP 3
  887. X! \fB\&.geometry: \fI+XOff+YOff\fR
  888. X! This resource defines the initial startup location for the \*(xM window.
  889. X! Note the dot (.) just in front of the geometry resource name.
  890. X! Users are cautioned to \fBnot\fR specify this resource with the
  891. X! wildcard (*) designation, as this would force all popup windows (help, menus,
  892. X! and send/reply) to orient to that same starting location, rather than be
  893. X! anchored to the intended window.
  894. X! .TP 3
  895. X! \fB*iconic: \fI<boolean>\fR
  896. X! This boolean defines whether the \*(xM application should be started in
  897. X! iconic state or not.  It is highly recommended that only the application
  898. X! resource identifier be used if specifying this resource.
  899. X! Use of the \fBXMail\fR Class identifier would also constrain any
  900. X! message entry windows to be started iconic, which could prove confusing
  901. X! to the unaware user.
  902. X! .TP 3
  903. X! \fB*iconGeometry: \fI+XOff+YOff\fR
  904. X! This resource defines an initial location for the icon, whenever the
  905. X! \*(xM application is iconified.
  906. X! .TP 3
  907. X! \fB*bellRing: \fI<boolean>\fR
  908. X  Normally true, this boolean enables ringing of the terminal bell during
  909. X  status and error message display.
  910. X! .TP 3
  911. X! \fB*helpFont: \fI<fontname>\fR
  912. X  denotes a preferred font to use when displaying help information.
  913. X! .TP 3
  914. X! \fB*mailopt_n: \fI<boolean>\fR
  915. X! Normally false, this resource
  916. X  duplicates the effect of the \fI-n\fR command line option.
  917. X! .TP 3
  918. X! \fB*mailopt_U: \fI<boolean>\fR
  919. X! Normally false, this resource
  920. X  duplicates the effect of the \fI-U\fR command line option.
  921. X! .TP 3
  922. X! \fB*MFileName: \fI<foldername>\fR
  923. X! Normally null, this resource
  924. X  duplicates the effect of the \fI-f folder\fR command line option.
  925. X! .TP 3
  926. X! \fB*Show_Last: \fI<boolean>\fR
  927. X  Normally true, this boolean enables display of the last message in a folder,
  928. X  providing no other is newer or unread.  Setting this resource to false causes
  929. X  folder displays to start with the first (or new or unread) message.
  930. X! .TP 3
  931. X  \fB*icon\fR
  932. X  controls resources for the \fIicon\fR window.  In addition to 
  933. X  specifications of foreground and background colors, it is possible
  934. X  to also specify mailWatch widget resources, such as the following:
  935. X  .RS
  936. X! .TP 3
  937. X! \fB*icon*reverseVideo: \fI<boolean>\fR
  938. X  If set to true, reverses the foreground and background colors for the icon.
  939. X! .TP 3
  940. X! \fB*icon*update: \fI<seconds>\fR
  941. X! Specifies the update interval for checking new mail (default is 30 seconds).
  942. X! .TP 3
  943. X! \fB*icon*bell: \fI<boolean>\fR
  944. X  If set to False, prevents the mailWatch widget from ringing the bell when
  945. X! new mail arrives.  See also the \&.mailrc variable setting for \fIbell\fR.
  946. X  .RE
  947. X! .TP 3
  948. X  \fB*titleBar\fR
  949. X  controls resources for the \fItitleBar\fR window
  950. X! .TP 3
  951. X  \fB*indexWindow\fR
  952. X  controls resources for the \fIindex\fR window
  953. X! .TP 3
  954. X  \fB*statusWindow\fR
  955. X  controls resources for the \fIstatus\fR window
  956. X! .TP 3
  957. X  \fB*commandPanel\fR
  958. X  controls resources for the \fIcommand panel\fR
  959. X! .TP 3
  960. X  \fB*fileWindow\fR
  961. X  controls resources for the \fIfile window\fR within the command panel
  962. X! .TP 3
  963. X  \fB*textWindow\fR
  964. X  controls resources for the \fItext\fR window
  965. X! .TP 3
  966. X  \fB*list\fR
  967. X  controls resources for the \fIfolder list\fR popup window
  968. X! .TP 3
  969. X  \fB*menu\fR
  970. X  controls resources for all of the command button popup menus
  971. X! .TP 3
  972. X  \fB*To\fR
  973. X  controls resources for the \fITo:\fR entry window
  974. X! .TP 3
  975. X  \fB*Subject\fR
  976. X  controls resources for the \fISubject:\fR entry window
  977. X! .TP 3
  978. X  \fB*Cc\fR
  979. X  controls resources for the \fICc:\fR entry window
  980. X! .TP 3
  981. X! \fB*Bcc\fR
  982. X! controls resources for the \fIBcc:\fR entry window
  983. X! .TP 3
  984. X! \*Q\fBXMail*vt100.\fI<resource: value>\fR\*U.
  985. X! definitions control resources for the send or reply \fImessage entry\fR windows
  986. X  .RE
  987. X  
  988. X! A set of default resource definitions are provided in the
  989. X! file \fB/usr/lib/X11/app-defaults/XMail\fR.  User's may wish to include
  990. X! appropriate alternate definitions in their ~/.Xdefaults file, to tailor
  991. X! preferences for colors and/or fonts.
  992. X! .SH "ENVIRONMENT"
  993. X! Several process environment variables are of potential interest to \*(xM.
  994. X! .sp
  995. X! .RS
  996. X! .TP 3
  997. X! \fBDEAD\fR
  998. X! Normally specified in the user's \&.mailrc file,
  999. X! this variable indicates the name of the file to use when storing dead letters.
  1000. X! If unspecified, it defaults to \*Qdead.letter\*U in the user's HOME directory.
  1001. X! .TP 3
  1002. X! \fBHOME\fR
  1003. X! Defines the path to the user's home directory, and is used in determining
  1004. X! the complete path for mail folder and dead letter files.
  1005. X! .TP 3
  1006. X! \fBMAILRC\fR
  1007. X! If defined, denotes the full name of the user preferred Mail program startup
  1008. X! file, used to define various mail state variables.  By default, Mail (and
  1009. X! \*(xM) will look for the file \&.mailrc, in your home directory.
  1010. X! .TP 3
  1011. X! \fBMBOX\fR
  1012. X! Normally specified in the user's \&.mailrc file,
  1013. X! this variable denotes the preferred file to use when storing letters that are
  1014. X! no longer to be preserved in the system mail folder, and letters copied or
  1015. X! saved to no other specific file.
  1016. X! .TP 3
  1017. X! \fBUSER\fR
  1018. X! Defines the login name of the current user, and is used in determining the
  1019. X! name of the author of any message compositions.
  1020. X! .TP 3
  1021. X! \fBVISUAL\fR
  1022. X! Normally specified in the user's \&.mailrc file,
  1023. X! this variable denotes the preferred editor to use when composing messages in
  1024. X! \*(xM.
  1025. X! .TP 3
  1026. X! \fBXMAILER\fR
  1027. X! If defined, points to the particular executable to be used as the Mail
  1028. X! program.  Normally, \*(xM establishes connections with Mail in the default
  1029. X! path of the process (assumed to be at least \*Q/bin /usr/bin /usr/ucb\*U).
  1030. X! If need be, the XMAILER
  1031. X! environment variable can be used to provide a specific path to the Mail
  1032. X! program.  Note: \*(xM will not work correctly with any mail program
  1033. X! other than the intended Berkeley Mail program.
  1034. X! .RE
  1035. X! .SH "MAIL VARIABLES"
  1036. X! \*(xM also uses the existence and value of several Mail environment
  1037. X! variables (\fIdefined in the user's \&.mailrc file\fR) to aid in controlling
  1038. X! it's operation.
  1039. X! .sp
  1040. X! .RS
  1041. X! .TP 3
  1042. X! \fBalwaysignore\fR
  1043. X! If set, causes \*(xM to ignore those header fields specified with the
  1044. X! \fIignore\fR \&.mailrc environment variable, when printing messages 
  1045. X! or when including message text in a send/reply composition.  This variable
  1046. X! can be altered during the execution of \*(xM.  (See the section below
  1047. X! on \fIChanging Variables\fR.)
  1048. X! .TP 3
  1049. X! \fBautoprint\fR
  1050. X! If enabled, causes the current message text to be displayed when deleting or
  1051. X! undeleting messages.  If \fInot\fR enabled, users must select or read the
  1052. X! desired
  1053. X! message.  This variable can also be altered within the current \*(xM execution.
  1054. X! .TP 3
  1055. X! \fBbell=\fIvalue\fR
  1056. X! If defined, determines the number of times the terminal bell would be rung to
  1057. X! indicate the arrival of new mail.  A minimum of once and a maximum of five
  1058. X! times is the permissible range.  Whether the terminal bell rings at all when
  1059. X! new mail arrives is controlled by the \*Q\fB*icon*bell: \fI<boolean>\fR\*U
  1060. X! resource (\fIor \fB\-nb\fP command line option\fR) described above.
  1061. X! .TP 3
  1062. X! \fBhold\fR
  1063. X! Like mailtool, \*(xM sets \*Qhold\*U on the user's system mail folder,
  1064. X! unless \*Qnohold\*U has been \fIexplicitly\fR specified in the user's
  1065. X! \&.mailrc file.  This variable can also be altered during \*(xM execution.
  1066. X! .TP 3
  1067. X! \fBprintmail=\fIprinter command\fR
  1068. X! This variable, originally created for the Sunview mailtool, allows the user
  1069. X! to specify a preferred command to use when printing messages.  The default
  1070. X! command is \*Qlpr -p\*U.
  1071. X! .TP 3
  1072. X! \fBsendmail=\fIshell-command\fR
  1073. X! If set, specifies an alternate procedure to use in lieu of the default
  1074. X! \&/usr/lib/sendmail for delivering mail. User supplied procedures must be
  1075. X! prepared to search the message file for recipients and ignore or process
  1076. X! unexpected options (which ultimately must be passed on to the real sendmail
  1077. X! program).
  1078. X! .RE
  1079. X! .LP
  1080. X! Some Mail variables have no effect on \*(xM operation, and are in fact ignored
  1081. X! if found to be set.
  1082. X! .RS
  1083. X! .TP 3
  1084. X! \fBreplyall\fR
  1085. X! has no effect on the meaning of commands within \*(xM.  This prevents confusion
  1086. X! due to a difference between how a command is labeled, and how it reacts in use.
  1087. X! .TP 3
  1088. X! \fBcrt=\fI<value>\fR
  1089. X! is ignored, and always defaults to \fBnocrt\fR.  This prevents user specified
  1090. X! paging mechanisms from interfering with full message delivery to \*(xM.
  1091. X! .TP 3
  1092. X! \fBscreen=\fI<value>\fR
  1093. X! For X11 Release 3, the screen limit is 100 headers.  With X11 Release 4, a
  1094. X! maximum of 500 mail message headers will be displayed, as required.
  1095. X! .TP 3
  1096. X! \fBunset\fI <variable>\fR
  1097. X! should not be used to control variable settings, as \*(xM ignores any
  1098. X! \*Qunset\*U commands it may find.  Use the \fBset no\fI<variable>\fR construct
  1099. X! to disable selected variables instead.
  1100. X! .RE
  1101. X! .SH "CHANGING VARIABLES"
  1102. X! \*(xM provides a method of altering the values of three of the Mail
  1103. X! environment variables used to control \*(xM (and Mail) operations.
  1104. X! The states of \fBalwaysignore, autoprint,\fR and
  1105. X! \fBhold\fR can now be \*Qtoggled\*U from a special menu attached to the
  1106. X! \fBpreserve\fR command button.
  1107. X! .LP
  1108. X! Pressing the right mouse button while the
  1109. X! mouse pointer is within the preserve command button box presents a
  1110. X! menu of \*Qset\*U
  1111. X! commands which indicate the state the environment variables would be changed
  1112. X! to,
  1113. X! if the mouse button were released while one of these commands was highlighted.
  1114. X! .LP
  1115. X! Changing the state of the variable alters the next presentation of the menu,
  1116. X! such that the opposite state will always be presented as the command option.
  1117. X! .SH "SEE ALSO"
  1118. X! Mail(1)
  1119. X! .SH BUGS
  1120. X! Repeated pressings of a command button prior to its completion of an
  1121. X! operation may cause \*(xM to crash.  Users are cautioned against imposing too
  1122. X! many requests too quickly when using \*(xM.
  1123. X  .SH AUTHOR
  1124. X  .ce 3
  1125. X  Copyright 1989 - \*(nS
  1126. X***************
  1127. X*** 350,367 ****
  1128. X  .RS
  1129. X  used as the \*(xM icon window.
  1130. X  .RE
  1131. X- .SH "SEE ALSO"
  1132. X- mail(1)
  1133. X- .SH BUGS
  1134. X- Due to non-ICCCM compliance between the R3 release of X11 window managers
  1135. X- and the X11 sun server, the following bug is known to exist when using \*(xM
  1136. X- under X11 Release 3.
  1137. X- 
  1138. X- Keyboard input focus in the \fIFile:\fP window \fBmay\fP be lost for a
  1139. X- period of time after a folders menu list creation (\fIsee \fBFOLDERS\fP
  1140. X- above\fR).
  1141. X- This input focus loss will prevent keyboard modification to any file or folder
  1142. X- specifications in that window.  The pasting of folder menu selections and
  1143. X- the use of the folder button are not affected by this loss.
  1144. X- Destroying the folder menu list (\fIby selecting the Newmail command\fP) should
  1145. X- relieve the input problem (until the folder menu list is again created).
  1146. X--- 592,594 ----
  1147. X*** ../v1.0/xmailregex.h    Sun May 27 21:05:54 1990
  1148. X--- xmailregex.h    Sun May 27 21:10:06 1990
  1149. X***************
  1150. X*** 48,57 ****
  1151. X  
  1152. X  static PatternRec command_pattern[] = {
  1153. X      {"Start", NULL },
  1154. X!     {"p [^\n]+\n\\|c [^\n]+\n\\|C [^\n]+\n\\|s [^\n]+\n\\|S [^\n]+\n\\|\
  1155. X! w [^\n]+\n\\|W [^\n]+\n\\|-\n\\|hold [^\n]+\n\\|m[^\n]+\n\\|n\n", NULL },
  1156. X      {"file[^%]*\n", NULL },
  1157. X!     {"d[^\n]*\n\\|u[^\n]*\n", NULL },
  1158. X      {"file %\n\\|inc\n", NULL },
  1159. X      NULL
  1160. X  };
  1161. X--- 48,56 ----
  1162. X  
  1163. X  static PatternRec command_pattern[] = {
  1164. X      {"Start", NULL },
  1165. X!     {"[pPcCsSw] [^\n]+\n\\|-\n\\|hold [^\n]+\n\\|m[^\n]+\n\\|n\n", NULL },
  1166. X      {"file[^%]*\n", NULL },
  1167. X!     {"[du][^\n]*\n", NULL },
  1168. X      {"file %\n\\|inc\n", NULL },
  1169. X      NULL
  1170. X  };
  1171. X***************
  1172. X*** 62,76 ****
  1173. X  #define    O_PRINT        3
  1174. X  
  1175. X  static PatternRec output_pattern[] = {
  1176. X!     { "No more messages\n\\|\
  1177. X! At EOF\n\\|\
  1178. X! No applicable messages from \{[^\}]+\}\n\\|\
  1179. X! No applicable messages\n\\|\
  1180. X! No new mail for [^\n]+\n\\|\
  1181. X! No mail for [^\n]+\n\\|\
  1182. X! Unknown command: \"[^\"]+\"\n\\|\
  1183. X! Referencing before first message\n\\|\
  1184. X! Cannot \"[^\"]+\" in edit mode\n\\|\
  1185. X  \"[^\"]+\" \\[Appended\\] [0-9]+/[0-9]+\n\\|\
  1186. X  \"[^\"]+\" \\[New file\\] [0-9]+/[0-9]+\n\\|\
  1187. X  \"[^\"]+\" No such file or directory\n\\|\
  1188. X--- 61,67 ----
  1189. X  #define    O_PRINT        3
  1190. X  
  1191. X  static PatternRec output_pattern[] = {
  1192. X!     { "No \\|At \\|Unknown \\|Referencing \\|Cannot \\|Not \\|New \\|May \\|\
  1193. X  \"[^\"]+\" \\[Appended\\] [0-9]+/[0-9]+\n\\|\
  1194. X  \"[^\"]+\" \\[New file\\] [0-9]+/[0-9]+\n\\|\
  1195. X  \"[^\"]+\" No such file or directory\n\\|\
  1196. X***************
  1197. X*** 80,95 ****
  1198. X  [^:]+: No such file or directory\n\\|\
  1199. X  [^:]+: Not a directory\n\\|\
  1200. X  [^:]+: not a regular file\n\\|\
  1201. X! [^:]+: empty file\n\\|\
  1202. X! Not in system mailbox\n\\|\
  1203. X! No message [^\n]+\n\\|\
  1204. X! No messages to [^\n]+\n\\|\
  1205. X! No recipients specified\n\\|\
  1206. X! No recipients specified\n[^\n]+\n\\|\
  1207. X! New mail has arrived\n", NULL },
  1208. X! 
  1209. X      { "From \\|Message ", NULL },
  1210. X      { "\"[^\"]+\": [0-9]+ message[^\n]+\n\\|[^:]+: [^\n]+\n", NULL },
  1211. X!     { "Pipe to: \"lpr -p\"\n\"lpr -p\" [0-9]+/[0-9]+\n", NULL },
  1212. X      NULL 
  1213. X  };
  1214. X--- 71,79 ----
  1215. X  [^:]+: No such file or directory\n\\|\
  1216. X  [^:]+: Not a directory\n\\|\
  1217. X  [^:]+: not a regular file\n\\|\
  1218. X! [^:]+: empty file\n", NULL },
  1219. X      { "From \\|Message ", NULL },
  1220. X      { "\"[^\"]+\": [0-9]+ message[^\n]+\n\\|[^:]+: [^\n]+\n", NULL },
  1221. X!     { "Pipe to:[^\n]+\n[^\n]+\n", NULL },
  1222. X      NULL 
  1223. X  };
  1224. END_OF_FILE
  1225. if test 47241 -ne `wc -c <'Patch.01e'`; then
  1226.     echo shar: \"'Patch.01e'\" unpacked with wrong size!
  1227. fi
  1228. # end of 'Patch.01e'
  1229. fi
  1230. echo shar: End of archive 5 \(of 5\).
  1231. cp /dev/null ark5isdone
  1232. MISSING=""
  1233. for I in 1 2 3 4 5 ; do
  1234.     if test ! -f ark${I}isdone ; then
  1235.     MISSING="${MISSING} ${I}"
  1236.     fi
  1237. done
  1238. if test "${MISSING}" = "" ; then
  1239.     echo You have unpacked all 5 archives.
  1240.     echo Now ...
  1241.     echo "concatenate these five Patch.01? files (in order) into one file ..."
  1242.     echo "and apply to a set of virgin xmail sources, using 'patch'."
  1243.     rm -f ark[1-9]isdone
  1244. else
  1245.     echo You still need to unpack the following archives:
  1246.     echo "        " ${MISSING}
  1247. fi
  1248. ##  End of shell archive.
  1249. exit 0
  1250.  
  1251. dan
  1252. ----------------------------------------------------
  1253. O'Reilly && Associates   argv@sun.com / argv@ora.com
  1254. Opinions expressed reflect those of the author only.
  1255.